﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using br.com.portocs.unidaacademico.repositorio;
using br.com.portocs.unidaacademico.dominio;
using br.com.portocs.unidaacademico.ui.views;

public partial class Pessoas : PageView
{
    private string AreaId = br.com.portocs.unidaacademico.ui.views.Areas.Curso;

    private string PAGINA_ATUAL = "Pessoas.aspx";
    private string PAGINA_CADASTRO = "PessoasCadastro.aspx";
    private string ITEM_ID = "ItemId";

    protected List<PessoaFisica> PessoasFisica
    {
        get
        {
            if (ViewState["pessoas"] == null)
                ViewState.Add("pessoas", new RepositorioBase<PessoaFisica>().RecuperaTodos());
            return (List<PessoaFisica>) ViewState["pessoas"];
        }        
        set
        {
            ViewState.Add("pessoas", value);
        }
    }

    private void RemoverItem()
    {
        /************ Esta linha eh editavel *************/
        new RepositorioPessoas().Excluir(long.Parse(Request.QueryString[ITEM_ID].ToString()));
        /**************************************************/
    }

    private void popularItems()
    {
        /************ Linhas editaveis *******************/
        //listItems.DataSource = new RepositorioBase<br.com.portocs.unidaacademico.dominio.Curso>().RecuperaTodos();
        //listItems.DataTextField = "Nome";
        //listItems.DataValueField = "Id";
        /*************************************************/

        CarregaGridAlunos();
    }

    private void CarregaGridAlunos()
    {
        grdItens.DataSource = PessoasFisica;
        grdItens.DataBind();
    }

    #region
    //Não é necessário editar 
    protected void Page_Load(object sender, EventArgs e)
    {
        ViewState["AreaId"] = AreaId;

        //verificar se é para excluir algum registro
        verificaSeHaExclusao();

        //verificar se é para exibir alguma mensagem
        verificaSeHaMensagemAExibir();

        if (!Page.IsPostBack)
            popularListaItems();

    }

    //Não é necessário editar 
    private void verificaSeHaMensagemAExibir()
    {
        string aviso = Session["exibir_aviso"] != null ? Session["exibir_aviso"].ToString() : string.Empty;

        if (!aviso.Equals(string.Empty))
        {
            litAviso.Text = aviso;
            Session.Remove("exibir_aviso");
        }

    }



    private void verificaSeHaExclusao()
    {
        string remover = Request.QueryString["acao"] != null ? Request.QueryString["acao"].ToString() : string.Empty;

        if (!remover.Equals(string.Empty))
        {
            RemoverItem();
            Session.Add("exibir_aviso", "Item excluído com sucesso");
            Response.Redirect(PAGINA_ATUAL);
        }
    }



    private void popularListaItems()
    {
        string selValue = string.Empty;
//        if (listItems.SelectedValue != string.Empty) { selValue = listItems.SelectedValue; }

        
        popularItems();
//        if (!selValue.Equals(string.Empty)) { listItems.SelectedValue = selValue; }
//        listItems.DataBind();
    }
    #endregion

    #region Ações
    //Não é necessário editar 
    protected void btCriar_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect(PAGINA_CADASTRO + "?acao=criar");
    }

    //Não é necessário editar 
    protected void btAlterar_Click(object sender, ImageClickEventArgs e)
    {
        //Response.Redirect(PAGINA_CADASTRO + "?acao=alterar&" + ITEM_ID + "=" + listItems.SelectedValue);
    }
    //Não é necessário editar 
    protected void btExcluir_Click(object sender, ImageClickEventArgs e)
    {
        //Response.Redirect(PAGINA_ATUAL + "?acao=excluir&" + ITEM_ID + "=" + listItems.SelectedValue);
    }

    #endregion

    protected void btNovo_Click(object sender, EventArgs e)
    {
        Response.Redirect(PAGINA_CADASTRO + "?acao=criar");
    }
    protected void btEditar_Click(object sender, EventArgs e)
    {
        int id = 0;
        foreach (Telerik.Web.UI.GridDataItem linha in grdItens.Items)
        {
            CheckBox chk = (CheckBox)linha.FindControl("chkSeleciona");
            if (chk.Checked) { id = int.Parse(linha["Id"].Text); }
        }

        Response.Redirect(PAGINA_CADASTRO + "?acao=alterar&" + ITEM_ID + "=" + id.ToString());
    }
    protected void grdItens_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        popularItems();
    }
    protected void cmbFiltroSituacao_SelectedIndexChanged(object sender, EventArgs e)
    {
        
        
    }
}